Humans interact with devices in various ways. Keyboards, mice and trackpads, for example, have been used for years to enable users to interact with computers and are still relevant input mechanisms for providing accurate input control with excellent tactile feedback. One downside of these input mechanisms, however, is limited customizability. Apart from adding additional keys and allowing for custom key bindings, keyboards are still restrained by the requirement to function correctly across a wide range of applications. Touchscreens, on the other hand, allow near limitless customizability since touchscreens can be customized through software to display any soft button or other graphical user interface (“GUI”) element, and do not rely on hardware keys and buttons to be mapped to particular functions of a given application.
In recent years, human-machine interface designers have looked to voice and gestures to enable hands-free interaction with devices such as smartphones, computers, televisions, and gaming systems. Voice is a promising input method, but complications still exist to successfully enable voice recognition technology to understand natural language, and instead, users are often required to interact with a voice recognition system using a specific syntax with which the users must become familiar. Gesture-based input is another promising input method, but acceptance of gesture-based input has proven difficult for sustainable adoption by mainstream users.